package cn.edu.sgu.www.mhxysy.service.achievement;

import cn.edu.sgu.www.mhxysy.dto.achievement.RoleChengweiDTO;
import cn.edu.sgu.www.mhxysy.entity.achievement.RoleChengwei;
import cn.edu.sgu.www.mhxysy.pager.achievement.RoleChengweiPager;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author 沐雨橙风ιε
 * @version 1.0
 */
public interface RoleChengweiService {

	/**
	 * 更换角色称谓显示
	 * @param roleId 角色ID
	 * @param chengweiId 称谓ID
	 */
	@Transactional(rollbackFor = Exception.class)
	void change(String roleId, Integer chengweiId);

	/**
	 * 添加角色称谓
	 * @param roleChengweiDTO 角色称谓信息
	 */
	@Transactional(rollbackFor = Exception.class)
	void insert(RoleChengweiDTO roleChengweiDTO);

	/**
	 * 通过ID批量删除角色称谓
	 * @param ids 角色称谓ID列表
	 */
	@Transactional(rollbackFor = Exception.class)
	void deleteByIds(List<String> ids);

	/**
	 * 通过ID修改角色称谓信息
	 * @param roleChengweiDTO 角色称谓信息
	 */
	@Transactional(rollbackFor = Exception.class)
	void updateById(RoleChengweiDTO roleChengweiDTO);

	/**
	 * 分页查询角色称谓列表
	 * @param pager 分页参数
	 * @return Page<RoleChengwei>
	 */
	Page<RoleChengwei> selectByPage(RoleChengweiPager pager);

	/**
	 * 查询角色称谓
	 * @param roleId 角色ID
	 * @param useStatus 使用状态
	 * @param chengweiId 称谓ID
	 * @return RoleChengwei
	 */
	RoleChengwei select(String roleId, Integer useStatus, Integer chengweiId);
}